package cliente.pagina.contenido.ExamenAutoexamen.Alumno;

import java.sql.Timestamp;
import cliente.pagina.*;
import cliente.pagina.contenido.VistaContenido;
import comun.constantes.*;
import helpers.examenAutoexamen.*;

/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: </p>
 * @author unascribed
 * @version 1.0
 */

public class ContenidoRendirExamen extends VistaContenido {
	HelperExamenAutoexamen helperEA=null;
	
	public ContenidoRendirExamen() {
	}
	
	public ContenidoRendirExamen(Pagina pagina) {
		super(pagina);
		this.setPermisoEscritura(this.getPagina().obtenerPermisoRecurso(this.getNombreRecurso()).compareTo(TIPO_PERMISOS.ESCRITURA)==0);
	}
	
	public String getTitulo() {
		return TEXTOS.REALIZAR_EXAMEN;
	}
	
	public String getNombreRecurso() {
		return RECURSOS.REALIZAR_EXAMEN; 
	}
	
	protected String getNombrePagina(){
		return "rendir_examen.jsp";
	}
	
	public String getHTMLVista() {
		String html = null;
		helperEA = new HelperExamenAutoexamen(this.getPagina());
		try{
			html="";
			Long idExamen=null;
			String idEx = this.getPagina().getParameter(PARAMETROS_PAGINAS.ID_EXAMEN);
			String idExFinaliz = this.getPagina().getParameter(PARAMETROS_PAGINAS.ID_EXFIN);
			String guardarDatos = this.getPagina().getParameter("guardarEx");
			if(idEx!=null){
				idExamen = new Long(idEx);
			}
			Long idExFin=null;
			if(idExFinaliz != null){
				idExFin = new Long(idExFinaliz);
			}
			if(guardarDatos == null){
				if(helperEA.obtenerPermisoRendir(idExamen,true)){ 
					Timestamp tiempo = helperEA.obtenerTiempoExamen(true,idExamen);
					Timestamp tAdv = helperEA.obtenerTiempoAdvExamen(true,idExamen);
					if(tiempo!=null)
						html += this.codJS_Reloj(true,tiempo.getHours(),tiempo.getMinutes(),tiempo.getSeconds(),tAdv.getHours(),tAdv.getMinutes(),tAdv.getSeconds()); 
					html+="       <h1>"+this.getTitulo()+"</h1>\n";	  
					//ingreso Examen
			    /*	if(idExFin==null)
						idExFin = helperEA.crearExFin(idExamen,true);
					else
						helperEA.guardarEstadoExFin(idExFin);*/
					html+=helperEA.getHTMLMostrarExamen(idExamen,idExFin,true,true);
				}else{
					html+="usted no tiene permiso para rendir";
				}
			}else{
				if(guardarDatos.compareTo("SI")==0){
					idExFin=guardarRespuestas(idExamen,idExFin);
					html+=helperEA.getHTMLVisualizarResultadoExamen(idExFin);
					html+=helperEA.getHTMLVolverGestionAlumno();
					// en vez de visualizar resultado deberia obtener el resultado, luego verificar si es nulo o no y pasar
					//	String pagina =this.getPagina().getPathPaginas()+"examenautoexamen.jsp?cme=3&nota="+calif; 
					//	html+=utils.UtilsGenerarHtml.generarHTMLForward(pagina);
				}		
			}
			helperEA.commit();
		}catch(Exception ex){
			ex.printStackTrace();
			helperEA.rollback();
			return  comun.MensajeDeError.ERROR_EN_LA_GENERACION_DE_LA_PAGINA;
		}
		return html;  
	}
	
	private Long guardarRespuestas(Long idExamen,Long idExFin)throws Exception{
		HelperExamenAutoexamen helperExA = new HelperExamenAutoexamen(this.getPagina());
		Long rta=null;
		try{
			rta=helperExA.guardandoRespEx(idExamen,idExFin);
			helperExA.commit();
		}catch(Exception ex){
			ex.printStackTrace();
			helperExA.rollback();
			throw ex;
		}
		return rta;
	}
	
	protected String getSubcarpetaRecurso() {
		return CARPETAS_ARCHIVOS_RECURSO.EVALUACIONES+"/";
	}
	
	public String getTituloLink() {
		return ">Rindiendo...";
	}
	
	public String codJS_Reloj(boolean esExamen, int hr, int min, int seg, int hrAdv, int minAdv, int segAdv ){
		String retorno="";
		if(esExamen){
			retorno += "\n"+
			"<script type=\"text/javascript\">\n"+
			"function popUp(URL, nombre) {\n"+
			"	window.open(URL, nombre, 'toolbar=0,Scrollbars=NO,location=0,statusbar=0,menubar=0,resizable=0,width=200,height=150,left=300,top=150,dependent=yes');\n"+
			"}\n"+
			"hr="+hr+"\n"+
			"min="+min+"\n"+
			"seg="+seg+"\n"+
			"hrAdv="+hrAdv+"\n"+
			"minAdv="+minAdv+"\n"+
			"segAdv="+segAdv+"\n"+
			"function timer1(){\n"+
			"if(hr>9) document.form1.time1.value=hr;\n"+
			"else document.form1.time1.value='0'+hr;\n"+
			"if(min>9) document.form1.time2.value=min;\n"+
			"else document.form1.time2.value='0'+min;\n"+
			"if(seg>9) document.form1.time3.value=seg;\n"+
			"else document.form1.time3.value='0'+seg;\n"+
			"if((hr<=0) && (min <=0) &&(seg<=0)) {\n"+
			"	clearInterval();" +
			"   document.EntregarExamen.submit(); "+
			"}\n"+
			"else{\n"+
			"	if(seg>0) {\n"+
			"		seg--;\n"+
			"	} else { \n"+
			"		seg =59;\n"+
			"		if(min > 0) {\n"+
			"			min--;\n"+
			"		} else {\n"+
			"			min=59;\n"+
			"			hr--;\n"+
			"		}\n"+
			"	}\n"+
			"   if((hr==hrAdv) && (min==minAdv) && (seg==segAdv)){\n"+
            "      popUp('"+this.getPagina().getPathRaiz()+"advExamen.jsp?&hrAdv="+hrAdv+"&minAdv="+minAdv+"&segAdv="+segAdv+"','atencion');\n"+
            "   }\n"+
			"}\n"+
			"}\n"+
			"setInterval(\"timer1()\",1000);\n"+
			"</script>\n";
		}
		return retorno;
	}
	
	public String getTeclaAccesoRapido() {
		// TODO Auto-generated method stub
		return "";
	}
}